// 导入用户相关接口
import {
  getUserInfoAPI,
  getLikesNumAPI,
  getFollowersNumAPI,
  getFansNumAPI,
  getVideosNumAPI,
  getUserLikesAPI
} from '@/api/user/user';

/**
 * 初始化用户信息（整合所有相关接口）
 * @param {string} userId - 用户ID
 * @returns {Object} 整合后的用户信息对象
 */
export const initUserInfo = async (userId) => {
  try {
    // 1. 先获取基础用户信息（包含头像、昵称等）
    const baseInfoRes = await getUserInfoAPI(userId);
    if (baseInfoRes.code !== 200) {
      console.error('获取基础用户信息失败：', baseInfoRes.message);
      return {};
    }
    const userInfo = { ...baseInfoRes.data }; // 初始化基础信息

    // 2. 并行请求其他数据（无依赖关系，并行提升效率）
    const [
      likesNumRes,
      followersNumRes,
      fansNumRes,
      videosNumRes,
      userLikesRes
    ] = await Promise.all([
      getLikesNumAPI(userId),
      getFollowersNumAPI(userId),
      getFansNumAPI(userId),
      getVideosNumAPI(userId),
      getUserLikesAPI(userId)
    ]);

    // 3. 整合所有数据（按接口返回结果更新）
    if (likesNumRes.code === 200) userInfo.likesNum = likesNumRes.data;
    if (followersNumRes.code === 200) userInfo.followersNum = followersNumRes.data;
    if (fansNumRes.code === 200) userInfo.fansNum = fansNumRes.data;
    if (videosNumRes.code === 200) userInfo.videosNum = videosNumRes.data;
    // 注意：getUserLikes会覆盖getLikesNum的结果（保持原逻辑）
    if (userLikesRes.code === 200) userInfo.likesNum = userLikesRes.data;

    // console.log('用户信息初始化完成：', userInfo);
    return userInfo;

  } catch (error) {
    console.error('用户信息初始化失败：', error);
    return {}; // 失败时返回空对象，避免组件报错
  }
};